home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 2 / Amiga Tools 2.iso / tools / mg / src.lzh / amiga / Makefile.LATTICE < prev    next >
Makefile  |  1990-05-23  |  4KB  |  112 lines

  1. #
  2. # Makefile for mg3 and beyond, for use with Lattice v5 and beyond. Uses make
  3. # to build things.
  4. #
  5.  
  6. # Names of the directories where we find sources
  7. MG = /mg
  8. AMIGA = /amiga
  9.  
  10. #
  11. # set things up so we get .o files built correctly
  12. #
  13. INCS =  -I$(AMIGA) -I/h
  14. CFLAGS = $(INCS) -O
  15.  
  16. .DEFAULT:
  17.     $(CC) $(CFLAGS) -c $*.c
  18.  
  19. .c.o:
  20.     $(CC) $(CFLAGS) -c $*.c
  21.  
  22. # list of amiga-specific source files
  23. AMIGASRC1 = /amiga/ttymouse.c /amiga/ttymenu.c /amiga/menustack.c \
  24.     /amiga/iconify.c /amiga/ttyicon.c /amiga/spawn.c /amiga/offset.c
  25.     
  26.  
  27. AMIGASRC2 =/amiga/ttyio.c /amiga/tty.c /amiga/ttykbd.c /amiga/fileio.c \
  28.     /amiga/console.c /amiga/dirio.c /amiga/rexx.c
  29.  
  30. # list of mg system-independent source files
  31. MGSRC1 = /mg/macro.c /mg/regex.c /mg/re_search.c /mg/dired.c /mg/basic.c \
  32.     /mg/dir.c /mg/file.c /mg/line.c /mg/match.c /mg/paragraph.c \
  33.     /mg/random.c /mg/region.c /mg/search.c /mg/version.c /mg/window.c
  34.  
  35. MGSRC2 = /mg/word.c /mg/buffer.c /mg/display.c /mg/echo.c /mg/extend.c \
  36.     /mg/help.c /mg/kbd.c /mg/keymap.c /mg/main.c /mg/modes.c /mg/cinfo.c \
  37.     /mg/bind.c /mg/alloca.c
  38.  
  39. # list of amiga-specific object files
  40. AMIGAOBJ = ttymouse.o ttymenu.o menustack.o iconify.o ttyicon.o spawn.o \
  41.     ttyio.o tty.o ttykbd.o fileio.o console.o dirio.o offset.o rexx.o
  42.  
  43. # list of mg objects
  44. MGOBJ1 = macro.o regex.o re_search.o dired.o basic.o dir.o file.o line.o \
  45.     match.o paragraph.o random.o region.o search.o version.o window.o
  46. MGOBJ2 = word.o buffer.o display.o echo.o extend.o help.o kbd.o keymap.o \
  47.     main.o modes.o bind.o cinfo.o alloca.o
  48.  
  49. OBJ = $(MGOBJ1) $(MGOBJ2) $(AMIGAOBJ)
  50.  
  51. #
  52. # The editor
  53. #
  54. xmg:    $(OBJ) tmp.lnk
  55.     blink with tmp.lnk
  56.  
  57. tmp.lnk: Makefile
  58.     echo "From lib:cres.o $(AMIGAOBJ) " noline > tmp.lnk1
  59.     echo "$(MGOBJ1) " noline > tmp.lnk2
  60.     echo "$(MGOBJ2) $(REXXOBJ) " noline > tmp.lnk3
  61.     echo "to xmg lib lib:lcr.lib lib:amiga.lib map nil:" > tmp.lnk4
  62.     echo "SMALLCODE SMALLDATA NODEBUG" > tmp.lnk5
  63.     echo "DEFINE @_main=@_tinymain" > tmp.lnk6
  64.     join tmp.lnk1 tmp.lnk2 tmp.lnk3 tmp.lnk4 tmp.lnk5 tmp.lnk6 as tmp.lnk
  65.     rm tmp.lnk?
  66.  
  67. clean:
  68.     -rm $(AMIGAOBJ)
  69.     -rm $(MGOBJ1)
  70.     -rm $(MGOBJ2)
  71.     -rm xmg tmp.lnk rexxobj.make
  72.  
  73. #
  74. # build the dependency list for the .h files used by all sources. We do
  75. # this in multiple passes so to avoid problems with the long command line
  76. # generate when you slap all the sources together.
  77. # Note that there are faster, but more environment-dependent, ways to do
  78. # turn the output of the makemake's into an lmkfile. We avoid those
  79. # on purpose.
  80. #
  81. depend: rexxobj.make
  82.     @echo "Making dependencies. The following include files will be missing:"
  83.     @echo "config.h lisp.h syntax.h"
  84.     @makemake >ram:mg-amg1 $(INCS) $(AMIGASRC1)
  85.     -@grep -v : ram:mg-amg1
  86.     @makemake >ram:mg-amg2 $(INCS) $(AMIGASRC2)
  87.     -@grep -v : ram:mg-amg2
  88.     @makemake >ram:mg-mg1 $(INCS) $(MGSRC1)
  89.     -@grep -v : ram:mg-mg1
  90.     @makemake >ram:mg-mg2 $(INCS) $(MGSRC2)
  91.     -@grep -v : ram:mg-mg2
  92.     -@grep >ram:mgx-amg1 : ram:mg-amg1
  93.     -@grep >ram:mgx-amg2 : ram:mg-amg2
  94.     -@grep >ram:mgx-mg1 : ram:mg-mg1
  95.     -@grep >ram:mgx-mg2 : ram:mg-mg2
  96.     @delete ram:mg-mg1 ram:mg-mg2 ram:mg-amg1 ram:mg-amg2
  97.     @join rexxobj.make /amiga/makefile.LATTICE \
  98.         ram:mgx-mg1 ram:mgx-mg2 ram:mgx-amg1 ram:mgx-amg2 \
  99.         as makefile
  100.     @delete ram:mgx-mg1 ram:mgx-mg2 ram:mgx-amg1 ram:mgx-amg2
  101.  
  102. # This extracts the value of the REXX define (which should be where the
  103. # binaries are) to set a variable in the Makefile so the linker can
  104. # find them.
  105. rexxobj.make: rexx.h
  106.     @echo "Creating rexxobj.make"
  107.     @echo >ram:editcoms "M1;E/\#define REXX/REXXOBJ =/;Q"
  108.     -@edit from rexx.h to rexxobj.make with ram:editcoms
  109.     @delete ram:editcoms
  110.  
  111. # file dependencies will be appended after this line by "make depend"
  112.